<?php

class Endereco {
  
  const BAIRRO_FIELD = "bairro";
  const NUMERO_FIELD = "numero";
  const LOGRADOURO_FIELD = "logradouro";
  const CEP_FIELD = "CEP";
  const OUTRAS_INFO_FIELD = "outrasInformacoes";
  const CIDADE_FIELD = "cidade";
  const UF_FIELD = "UF";
  const COMPLEMENTO_FIELD = "complemento";
  
  public static function addAddress($fields, $values = null, $db = null) {
    if($values === null) {
      $values = array (
          Endereco::LOGRADOURO_FIELD => null,
          Endereco::NUMERO_FIELD => null,
          Endereco::COMPLEMENTO_FIELD => null,
          Endereco::BAIRRO_FIELD => null,
          Endereco::CEP_FIELD => null,
          Endereco::OUTRAS_INFO_FIELD => null,
          Endereco::CIDADE_FIELD => null,
          Endereco::UF_FIELD => null
      );
    }
    $fields[] = new FormField(false, Endereco::LOGRADOURO_FIELD, "Logradouro", new FormFieldTextLine(), $values[Endereco::LOGRADOURO_FIELD]);
    $fields[] = new FormField(false, Endereco::NUMERO_FIELD, "N&uacute;mero", new FormFieldAbsNumber(1), $values[Endereco::NUMERO_FIELD]);
    $fields[] = new FormField(false, Endereco::COMPLEMENTO_FIELD, "Complemento", new FormFieldTextLine(), $values[Endereco::COMPLEMENTO_FIELD]);
    $fields[] = new FormField(false, Endereco::BAIRRO_FIELD, "Bairro", new FormFieldTextLine(), $values[Endereco::BAIRRO_FIELD]);
    $fields[] = new FormField(false, Endereco::CEP_FIELD, "CEP", new FormFieldCEP(), $values[Endereco::CEP_FIELD]);
    $fields[] = new FormField(false, Endereco::OUTRAS_INFO_FIELD, "Outras Informa&ccedil;&atilde;es", new FormFieldTextBlock(), $values[Endereco::OUTRAS_INFO_FIELD]);
    $fields[] = new FormField(false, Endereco::CIDADE_FIELD, "Cidade", new FormFieldTextLine(), $values[Endereco::CIDADE_FIELD]);
    $fields[] = new FormField(false, Endereco::UF_FIELD, "UF", new FormFieldChoice(UF::getAllUFS($db)), $values[Endereco::UF_FIELD]);
    
    return $fields;
  }
  
  public static function montar($logradouro, $numero, $cep, $bairro, $cidade, $uf) {
    $out = array();
    if($logradouro !== null) $out[] = strval($logradouro);
    if($numero !== null) $out[] = strval($numero);
    if($cep !== null) $out[] = strval($cep);
    if($bairro !== null) $out[] = strval($bairro);
    if($cidade !== null) $out[] = strval($cidade);
    if($uf !== null) $out[] = strval($uf);
    return implode(" ", $out);
  }
  
}

?>
